package mybatis.session;

/**
 * 数据库查询会话对象工厂类
 *
 * @author richie696
 * @version 1.0
 * @since 2020/11/08
 */
public interface SqlSessionFactory {

    /**
     * 获取Session会话对象的方法
     *
     * @return 返回Session会话对象
     */
    SqlSession openSession();


    /**
     * 获取Session会话对象的方法
     *
     * @param autoCommit 是否执行自动提交操作
     * @return 返回Session会话对象
     */
    SqlSession openSession(boolean autoCommit);

    /**
     * 获取Session会话对象的方法
     *
     * @param level 指定事务隔离级别
     * @return 返回Session会话对象
     */
    SqlSession openSession(TransactionIsolationLevel level);

    /**
     * 获取核心配置文件对象的方法
     *
     * @return 返回核心配置文件对象
     */
    Configuration getConfiguration();

}
